This invention relates generally to the transmission and arrival of data, and more particularly to the smoothing of the data rate of such transmission and arrival of data.
The Internet has become an increasingly popular manner by which to convey information such as multimedia clips. One way for a user to download such clips from a remote server to be played on his or her (client) computer is known as streaming. With streaming technology, the user""s computer requests that the server begin sending a stream of data thereto. As the stream of data is being received, it is played on the user""s computer.
However, a disadvantage with streaming is that delays and data drop-out can occur throughout the streaming process, causing sub-optimal playback of the streamed data. For example, a server may be processing live audio and video events to be streamed to the client computer. The real-time encoding of such audio and video events into packets of data so that they may be streamed to the client computer typically occurs at what is known as an advertised data rate. The advertised rate is a contract between all cooperating components at the server computer to send data at a promised rate. However, at least some of the components may send data in bursts, such that the promised rate is actually an average rate over a given period of time. The burst rate may thus be ten or even a hundred percent over the advertised rate. If other components of the system cannot process the data at the burst rate, there is risk of data being lost, or xe2x80x9cdropping out.xe2x80x9d
As another example, a remote server may know that the client computer receives data at a rate governed by a communication mechanism at the client. Modems are one type of such communication mechanisms, and are typically limited to data rates of 28,800, 36,600, or 53,000 bits-per-second (baud rate). However, these baud rates are maximum rates; data may be received by the client at much lower rates, as a result of, for example, sub-par telephone line quality. Thus, transmission of data from the server to the client may become delayed. This is especially disadvantageous in contexts of streaming live or xe2x80x9clate breakingxe2x80x9d events, such that delay renders the information that the client does receive from the server as less valuable, since it may not be current. For these and other reasons, there is a need for the present invention.
The above-identified problems, shortcomings and disadvantages with the prior art, as well as other problems, shortcoming and disadvantages, are solved by the present invention, which will be understood by reading and studying the specification and the drawings. In one embodiment, a system includes a real-time encoder and a rate-smoothing mechanism. The real-time encoder has a first layer (e.g., an upper layer) and a second layer (e.g., a network layer), where the first layer sends packets of data to the second layer at a dynamic bit rate. The rate-smoothing mechanism adjusts the dynamic bit rate such that the rate is less than a predetermined maximum rate.
In a further embodiment of the invention, the second layer of the real-time encoder also sends the packets of data to the rate-smoothing mechanism. In this embodiment, the system also includes a buffer and a client. The buffer temporarily stores the packets of data received by the rate-smoothing mechanism from the second layer of the real-time encoder. The client receives the packets of data from the rate-smoothing mechanism as temporarily stored in the buffer, where the rate-smoothing mechanism deletes packets from the buffer when a predetermined backlog threshold is exceeded.
Thus, embodiments of the invention provides for advantages not found in the prior art. For example, data drop out during the real-time encoding of multimedia events is substantially eliminated. The rate-smoothing mechanism adjusts the dynamic bit rate so that the rate at which the second layer of the real-time encoder receives data from the first layer of the real-time encoder does not exceed a maximum rate at which the second layer can receive the data. As a further example, transmission delay of data from the server to the client is substantially accounted for. The rate-smoothing mechanism deletes packets from the buffer when a predetermined backlog threshold is exceed, so that the data is not overly old when it finally does reach the client.
The invention includes systems, methods, computers, and computer-readable media of varying scope. Besides the embodiments, advantages and aspects of the invention described here, the invention also includes other embodiments, advantages and aspects, as will become apparent by reading and studying the drawings and the following description.